﻿using System;
using System.Data;

namespace NovoSerDes.Funcs
{
    public interface ILogData
    {
        // 添加数据到指定表格
        bool AddData(string[] data);

        // 添加数据到指定表格
        bool AddData(uint chipAddr, string rw,uint addr, string value, bool isValid, string time);

        bool AddData(params object[] data);
        /// <summary>
        /// 扩展，如果需要添加新数据，设计一个类继承LogDataEntry
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        bool AddData(LogDataEntry data);

        // 保存数据集到 CSV 文件
        void SaveDataSetToCsv<T>(T data, string filePath);

        // 保存数据集到 Excel 文件
        void SaveDataSetToExcel<T>(T data, string filePath);

        //获取Dataset
        DataSet GetDataSet { get;}

        //获取所有数据
        DataTable GetDataTableAllData { get;}

        bool DeleteData(int index);

        bool DeleteAllData();
    }

    public class LogDataEntry
    {
        public uint ChipAddr { get; set; }
        public string Rw { get; set; }
        public uint Addr { get; set; }
        public string Value { get; set; }
        public bool IsValid { get; set; }
        public string Time { get; set; }

        public LogDataEntry(uint chipAddr, string rw, uint addr, string value, bool isValid, string time)
        {
            ChipAddr = chipAddr;
            Rw = rw;
            Addr = addr;
            Value = value;
            IsValid = isValid;
            Time = time;
        }
    }
}
